package main

import "fmt"

func main() {
	// 创建切片
	// 方法1：直接创建并赋值
	// names := []string{"小明", "小红", "小东"}
	// fmt.Printf("names=%v 类型：%T", names, names)
	// 方法2：使用make创建，需要提供初始大小
	// 参数1：类型  参数2：初始大小  参数3：容量（默认是初始大小一致）
	// nums := make([]int, 3, 6)
	// // 需要单独添加元素
	// nums[0] = 23
	// nums[1] = 9
	// nums[2] = 45
	// fmt.Println(nums)
	// // 获取切片长度（大小）
	// fmt.Println("长度：", len(nums))
	// fmt.Println("容量：", cap(nums))

	// nums := []int{23, 9, 78, 6, 45}
	// 2.访问
	// fmt.Println(nums[0])
	// fmt.Println(nums[1:3])
	// fmt.Println(nums[:2], nums[2:])

	// nums := []int{23, 9, 78, 6, 45}
	// // 获取多个，是一个子切片
	// sub_nums := nums[1:4] // [9 78 6]
	// fmt.Println(sub_nums)
	// // 如果修改子切片
	// sub_nums[0] = 99
	// fmt.Println("修改后的子切片：", sub_nums)
	// fmt.Println("父切片：", nums)

	// 3切片增删
	// names := []string{"小明", "小红"}
	// // 增加
	// names = append(names, "小东", "小丽", "小刚")
	// fmt.Println(names)
	// // 容量
	// fmt.Println("容量：", cap(names))

	names := []string{"小明", "小红", "小东", "小丽", "小刚"}
	fmt.Println(names[:2], names[3:])
	// 组合到一起
	// names[3:]... 展开
	result := append(names[:2], names[3:]...)
	fmt.Println(result)

}
